
import requestApi from '../requestApi';
import presetVar from '../presetVar';
import {updataFormData, updatacardTableData} from 'src/erm/sscrppublic/common/utils/changePageData';
import { setFormEditableKeys, setAllCardTableEditableKeys, zzhllxLogic } from  '../utils';
import _ from 'lodash-es'
const body1 = presetVar.body.body1;
const head1 = presetVar.head.head1;

export default function afterEvent(props, moduleId, key, value, changedrows, index, record) {

    let paramdata = {};
    moduleId = moduleId == head1 ? "headform" : moduleId;

    paramdata = {
        "value": value,
        "tableid": moduleId,
        "field": key,
        "uistate": presetVar.pageStatus,
        "tradetype": presetVar.tradeType,
        "oldvalue": '',
        "pagecode": presetVar.nccPageCode,
        checkrule: 'true'
    }
    if (moduleId != "headform") {
        paramdata.changeRowId = changedrows[0].rowid;
    } else {
        paramdata.value = value.value;
    }

    switch (moduleId) {
        case 'headform':
            if (key === 'pk_org') {
				if(!value||!value.value){
					
					props.form.setFormItemsValue(presetVar.head.head1,{'pk_org': changedrows})
					return
				}
			}
			if (key === 'pk_org_v') {
				if(!value||!value.value){
					
					props.form.setFormItemsValue(presetVar.head.head1,{'pk_org_v': changedrows})
					return
				}
			}
            switch (key) {
                case 'pk_org'://表头财务组织
                
                case 'pk_pcorg': // 利润中心
                case 'pk_pcorg_v': // 利润中心版本
                case 'djrq'://表头单据日期
                case 'bzbm'://表头币种
                case 'bbhl'://表头本币汇率
                case 'dwbm_v'://表头借款报销人单位版本
                case 'dwbm'://表头借款报销人单位
                case 'fydwbm_v'://表头费用承担单位版本
                case 'fydwbm'://表头费用承担单位
                case 'pk_payorg_v'://表头支付单位版本
                case 'pk_payorg'://表头支付单位
                case 'deptid_v':// 表头报销人部门版本
                case 'deptid':// 表头报销人部门
                case 'fydeptid_v':// 表头费用承担部门版本
                case 'fydeptid':// 表头费用承担部门
                case "jkbxr"://借款报销人
                case "receiver"://表头收款人
                case "szxmid"://表头收支项目
                case "skyhzh"://表头个人银行账户
                case "jobid"://表头项目
                case "freecust"://散户
                case "custaccount"://表头客商银行账户
                case "paytarget"://表头收款对象
                case "zzhllyrq"://组织汇率来源日期
                case "zzhllx"://组织汇率类型
                case "customer": //客户
                case "customer_v": // 客户版本
                case "hbbm": //供应商
                case "hbbm_v": //供应商版本

                    if (key === 'pk_org_v') {
                        if(!value||!value.value){
                            props.form.setFormItemsValue(presetVar.head.head1,{"pk_org_v": changedrows})
                            return
                        }
                    }
                    //去掉,编辑币种触发valuechange,返回默认值
                    // if (key === 'bzbm' && !value.value) break;

                    //判断收款对象是否为散户
                    if(key === 'hbbm'){
                        requestApi.isFreecust({
                            data:{
                                queryType:'hbbm',//供应商
                                pk:value.value
                            },
                            success:(data)=>{
                                props.form.setFormItemsDisabled('head', {
                                    freecust:!data,
                                });
                            }
                        })
                    }

                    if(key == 'customer'){
                        requestApi.isFreecust({
                            data:{
                                queryType:'customer',//客户
                                pk:value.value
                            },
                            success:(data)=>{
                                props.form.setFormItemsDisabled('head', {
                                    freecust:!data,
                                });
                            }
                        })
                       
                    }
                    if (key == 'paytarget' && props.form.getFormItemsVisible('head', 'paytarget')) {
                            props.form.setFormItemsDisabled('head', {
                                freecust:true
                            });
                        
                        if (value.value == '0') {
                            props.form.setFormItemsDisabled('head', {
                                hbbm: true,
                                hbbm_v: true,
                                customer: true,
                                customer_v: true,
                                custaccount: true,
                                receiver: false,
                                // freecust: true,
                                skyhzh: false
                            });
                        } else if (value.value == '1') {
                            props.form.setFormItemsDisabled('head', {
                                receiver: true,
                                customer: true,
                                customer_v: true,
                                hbbm: false,
                                hbbm_v: false,
                                custaccount: false,
                                skyhzh: true
                            });
                        } else if (value.value == '2') {
                            props.form.setFormItemsDisabled('head', {
                                hbbm: true,
                                hbbm_v: true,
                                receiver: true,
                                customer: false,
                                customer_v: false,
                                custaccount: false,
                                skyhzh: true
                            });
                        }
                    }
                   

                    let billdata = props.createHeadAfterEventData('', head1, [body1], moduleId, key, value);
                    let send_headdata = { billdata, paramdata };
                    // TOP NCCLOUD-91597 校验报销标准取模板时需要使用模板ID chengwbc ADD
	                send_headdata.templateid = props.meta.getMeta().pageid;
	                // BTM NCCLOUD-91597 校验报销标准取模板时需要使用模板ID
                    requestApi.valueChange({
                        data: send_headdata,
                        success: (data) => {
                            //设置表头数据
                            updataFormData(props, head1, data.head[head1]);
                            //设置表体数据
                            updatacardTableData(props, body1, data.bodys[body1]);
                            // BTM 性能优化，变更页面数据更新方法
                            setAllCardTableEditableKeys(props, data)
                        }
                    })
                    // 新增汇率适配逻辑
                    let currentrow_bzbm = props.form.getFormItemsValue(presetVar.head.head1,'bzbm');
                    let rate_category =  props.form.getFormItemsValue(presetVar.head.head1,'zzhllx.rate_category'); 
                    zzhllxLogic(currentrow_bzbm,rate_category,'head',props)
                    setFormEditableKeys(props)
                    break;
            }
              
            break;
        case body1:
            switch (key) {
                case 'assume_org': //费用承担单位
                // case 'pk_pcorg': // 利润中心
                case 'assume_amount': //承担金额
                case 'assume_dept': //费用承担部门
                case "zzhllyrq"://组织汇率来源日期
                case "zzhllx"://组织汇率类型
                case "bzbm": //币种
                case "bbhl"://本币汇率
                case "customer": //客户
                case "customer_v": // 客户版本
                case "hbbm": //供应商
                case "hbbm_v": //供应商版本
                    //表头修改后数据后台需要的结构， 一主一子  一主多子
                    if (changedrows[0].newvalue.value == changedrows[0].oldvalue.value) {
                        return;
                    }
                    let billdata = props.createHeadAfterEventData(presetVar.pageCode, head1, Object.values(presetVar.body), moduleId, key, value);

                    for (let bodyArea in billdata.card.bodys) {
                        //只发送未删除的行
                        billdata.card.bodys[bodyArea].rows = props.cardTable.getVisibleRows(bodyArea);
                    }
                    if (value.value == undefined || value.value == null) {
                        paramdata.value = changedrows[0].newvalue.value;
                    }
                    
                    let send_headdata = { billdata, paramdata };
	                send_headdata.templateid = props.meta.getMeta().pageid;
                    requestApi.valueChange({
                        data: send_headdata,
                        success: (data) => {
                            //设置表头数据
                            updataFormData(props, head1, data.head[head1]);
                            //设置表体数据
                            updatacardTableData(props, moduleId, data.bodys[moduleId]);
                            setFormEditableKeys(props)
                            setAllCardTableEditableKeys(props, data)
                        }
                    })
                     // 编辑后，本币汇率、本币汇率日期、本币汇率来源日期编辑性设置
                    // 新增汇率适配逻辑
                    let currentrow_bzbm = props.cardTable.getValByKeyAndRowId(moduleId, changedrows[0].rowid, 'bzbm')
                    console.log('ddd',currentrow_bzbm)
                    let rate_category = props.cardTable.getValByKeyAndRowId(moduleId, changedrows[0].rowid, 'zzhllx.rate_category')
                    zzhllxLogic(currentrow_bzbm,rate_category,'body',props,'bbhl',moduleId,changedrows[0].rowid)
                    
                    setFormEditableKeys(props)

                    break;
            }
            break;
    }
};